package com.huike.review.service.impl;

import com.huike.common.core.domain.AjaxResult;
import com.huike.common.exception.CustomException;
import com.huike.common.utils.StringUtils;
import com.huike.common.utils.bean.BeanUtils;
import com.huike.review.pojo.Review;
import com.huike.review.service.ReviewService;
import com.huike.review.mapper.MybatisReviewMapper;
import com.huike.review.vo.MybatisReviewVO;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;


/**
 * mybatis复习使用的业务层
 * 注意该业务层和我们系统的业务无关，主要是让同学们快速熟悉系统的
 */
@Service
public class ReviewServiceImpl implements ReviewService {

    @Autowired
    private MybatisReviewMapper reviewMapper;

    //第一条新增
    @Override
    public String addFirst(String name, Integer age, String sex) {
        //非空判断
//        if(StringUtils.isNoneBlank(name) || StringUtils.isNull(age) || StringUtils.isNull(sex)){
//            throw new CustomException()
//        }
        Integer count = reviewMapper.insert(name,age,sex);
        return "成功插入"+count+"条数据";
    }

    //第二条新增
    @Override
    public String addSecond(MybatisReviewVO mybatisReviewVO) {
        Integer count = null;
        try {
            Review review = new Review();
            BeanUtils.copyProperties(mybatisReviewVO,review);
            count = reviewMapper.addSecond(review);
            return "成功插入"+count+"条数据";
        } catch (BeansException e) {
            throw new CustomException("数据插入失败！");
        }

    }

    //修改
    @Override
    public String update(MybatisReviewVO mybatisReviewVO) {
        try {
            Review review = new Review();
            BeanUtils.copyProperties(mybatisReviewVO,review);
            reviewMapper.update(review);
            return "修改成功";
        } catch (BeansException e) {
            throw new CustomException("代码修改失败！");
        }


    }

    //根据id删除
    @Override
    public String deleteById(Integer id) {
       Integer count =  reviewMapper.deleteById(id);
       return "成功删除:" + count + "条数据";
    }

    //根据id查询
    @Override
    public MybatisReviewVO getById(Integer id) {
       MybatisReviewVO mybatisReviewVO = reviewMapper.getById(id);
       return mybatisReviewVO;
    }

    //查询所有
    @Override
    public List<MybatisReviewVO> list() {
        return  reviewMapper.list();
    }



    //第二条新增

    /**=========================================================保存数据的方法=============================================*/


    /**=========================================================删除数据=============================================*/


    /**=========================================================修改数据=============================================*/


    /**=========================================================查询数据的方法=============================================*/

}
